class Dog{
    public String colour;
    public String name;
    public double weight;

    public void Wang() {
        System.out.println(name+"汪汪汪");
    }
    public void Eat(){
        System.out.println(name+"吃东西");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog1=new Dog();
        dog1.colour="黄色";
        dog1.name="大黄";
        //dog1.Wang();
        //构造方法是在实例化对象的时候调用的
        //构造方法至少有一个，也就是说当你没有写任何的构造方法时，编译器/Java会自带一个不带参数的构造方法。
        // 只不过默认的这个构造方法没有具体的实现的
        //对象的初始化一定会调用构造方法
        //构造方法不只一个，实例化对象，会调用合适的构造方法
        //对象的产生简单来说一定会有两步：1.为对象分配内存 2.调用合适的构造方法
        Date date1=new Date(); //一旦这个类中提供任何一种构造方法，编译器都将不会再为你提供不带参数的构造方法。所以类中如果只有带参数的构造方法，那么这句话将报错
        Date date2=new Date(1,2,3);
        /*        date1.day=16;
        date1.month=1;
        date1.year=2025;
        date1.setDay(2014,12,32);
        date1.printDay();*/
    }
}
